草庐IT

c++ - OpenCV Visual Studio ntdll.dll

全部标签

c++ - Windows 如何处理加载两个不同版本的 DLL?

问题我正在编写一个使用特定DLL版本的软件。我在执行目录中找到了特定的DLL,因此程序使用了那个。但是现在我不知道如果加载了特定的DLL并启动了另一个需要更新版本的程序会发生什么。有谁知道会发生什么?其他程序崩溃还是我的崩溃?其他这个问题是针对操作系统的:Windows10和windows7。工作站正在运行Windows更新,因此DLL将是最新的。用C++编写代码。 最佳答案 不同的dll可以在不同的进程中加载​​。不同进程的地址空间是独立的,不会互相干扰。如果DLL使用全局命名事物(例如磁盘上的文件、互斥体、共享内存),则特定dl

python - 使用正则表达式解析 winerror.h 和 ntstatus.h 状态/定义

我正在尝试在Python中创建一个正则表达式来捕获来自winerror.h和ntstatus.h的所有最后错误、HRESULT和NTSTATUS定义:>http://www.carrona.org/winerror.html>http://www.codemachine.com/downloads/win71/ntstatus.h例如,对于这段文字:////MessageId:NTE_BAD_PROV_TYPE////MessageText:////Invalidprovidertypespecified.//Moredataisavaiableonblabla.//#defineNT

python - 我如何通过我的规范文件说服 PyInstaller 在它生成的 EXE 中包含 libvlc.dll?

我可以使用PyInstaller创建一个可在我的机器上运行的EXE。我满怀希望,而不是幻想,我希望EXE真的是独立的。但是,EXE不会在其他机器上运行。它由于缺少libvlc.dll而阻塞,错误消息说这可能是由于PyInstaller显然无法找到它。我用spec文件尝试了几件事,但都无济于事。我没有包含任何代码,因为我认为这无关紧要。这是我的规范文件:#-*-mode:python-*-block_cipher=Noneadded_files=[("D:/Applications/Python/RoguesGallery/images/*.*","images"),("D:/Appli

c++ - 延迟加载的 DLL 在内存中的加载距离彼此太远

我有一个x64Windows应用程序,它有时会在我无法控制的DLL库中崩溃。这个库实际上是一大组相互依赖的DLL(其中约40个)。崩溃并不总是在同一个地方,但这里有一个正在发生的事情的例子:Exceptionthrownat0x0000018393916B72(foo.dll)inbar.exe:0xC0000005:Accessviolationreadinglocation0x000001831C1F95A0.在此位置,VisualStudio中的反汇编显示如下:0000018393916B72cmpdwordptr[1831C1F95A0h],3起初我觉得这很奇怪,因为这意味着D

c - 如何通过命令提示符更改标题并保留系统信息

我试图通过命令行启动一个进程,但是当我对cmd使用/k选项时,我丢失了所有系统信息。我如何保存这些信息,是否有一个可能的环境变量,我可以更改它来更改标题。//firstlinewhereIsprintfcommandsintoabuffersprintf(commandLine_buf,"%s/T:F9/KTITLE=Whatisyourcommand",getenv("ComSpec"))@erksun感谢您的建议有效。我对其进行了一些修改,但它起作用了。这就是它的样子。下面sprintf(commandLine_buf,"cmd/cPROMPTSpeaktome$G&TITLEWh

无法在 cygwin 中使用 libusb-1.0 打开 USB 设备

我正在尝试使用cygwin中的libusb-1.0与USB外围设备连接。libusb_get_device_list(...)工作正常,我得到了USB设备列表。它在设备列表中找到具有正确VendorID和ProductID的设备,但是当使用该设备调用libusb_open(...)时,它总是失败并显示错误代码LIBUSB_ERROR_NOT_FOUND.我不认为这是权限问题,我试过以管理员身份运行它,并且有一个单独的错误代码(LIBUSB_ERROR_ACCESS)。此相同代码适用于Linux中的libusb-1.0。unsignedinit_usb(intvendor_id,intp

Python 请求 : Where is Crypto. dll?

我正在尝试在Windows上使用Anaconda的Python请求模块。使用pip安装后,尝试导入失败,因为密码学2.2.2模块需要asn1crypto。使用pip安装后,它失败了,因为加密库(在Windows上是crypto.dll)不存在。这到底是从哪里来的?asn1crypto使用它的方式让它看起来像是libcryptoXXX.dll,但我没有看到任何情况它会被称为crypto.dll。看起来非常旧的pyOpenSSL版本(回到python-OpenSSL时)带有用于Unix发行版的crypto.so,但我不知道它来自哪里,也没有看到任何提及crypto.dll(和crypto.

c - 在 C++ 程序中指定路径

我正在用C语言为Windows编写一个Java启动器,它针对位于我程序目录中的Java运行时环境启动(即随我的程序一起分发)。我有有效的代码(在下面指定),但它需要jvm.dll位于其%PATH%中以便执行。我想在我的代码中添加一行,告诉程序checkin/jre/bin/server对于jvm.dll,因此只需双击即可运行可执行文件。现在当我运行它时,它说“该程序无法启动,因为您的计算机缺少jvm.dll。请尝试重新安装该程序以解决此问题。”如果我将我的简单可执行文件移动到jre\bin\server其中jvm.dll驻留并尝试运行它,它有效。所以我只需要告诉我的程序在其他特定位置搜

c++ - 对 SetThreadErrorMode()、SetErrorMode()、_set_error_mode() 和 _CrtSetReportMode() 的混淆

我有一个用C++编写并使用VisualStudio2015编译的命令行应用程序。我需要确保此应用程序在自动、无人值守的功能测试期间不会被错误对话框阻止,特别是在断言失败的情况下(标准assert()来自)。我最初认为https://stackoverflow.com/a/6925695/393756中建议的以下调用会做这项工作,但它没有:_set_error_mode(_OUT_TO_STDERR);通过试验,我最终发现以下代码达到了预期的效果,至少在涉及到失败的断言对话框时:SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOGPFAULTERRORB

c - 将入口点更改为PE文件中新添加的shellcode段后,如何恢复主进程?

我试图通过在PE文件末尾添加一个额外的节头并在其中编写shellcode来进行PE感染。我已经添加了额外的部分并在其中编写了shellcode,并将原始入口点(OEP)更改为新添加的部分并且它执行得很好;我的意思是我的shellcode运行良好,但现在我想恢复主进程,为此我需要再次将修改后的入口点更改为OEP。但是,我无法弄清楚。请告诉我是否有任何方法可以在执行shellcode后恢复主进程。而且,我也试过这个blog,但它也不起作用,因为作者编写了内联汇编代码并放置了一些占位符以在运行时恢复OEP,这将动态嵌入到shellcode中。我正在考虑编写一个包含JMPto_OEP的shel